LL_DMA2D_Init and LL_DMA2D_DeInit APIs migration ¶
The LL initialization and de-initialization functions previously available in the
stm32tnxx_ll_dma2d.c
files
within HAL1 are no longer present in HAL2.
In HAL2, all LL C files (
stm32tnxx_ll_dma2d.c) have been removed, leaving only the LL header files (
stm32tnxx_ll_dma2d.h)
that contain static inline functions.
If users need to initialize or de-initialize DMA2D using the LL layer, use the following method:
Replace manually the initialization and de-initialization functions : Replace the
LL_DMA2D_InitandLL_DMA2D_DeInitfunctions manually with equivalent sequences using the static inline functions provided in thestm32tnxx_ll_dma2d.hfile, tailored to their specific configuration and requirements.
This approach ensures that the initialization and de-initialization sequences are precisely addressing the given use case based on the LL static inline functions provided in the
stm32tnxx_ll_dma2d.h
header file.
The sequences offer improved footprint optimization compared to the previous LL initialization functions found in
stm32tnxx_ll_dma2d.c.
Related concept: Remove stm32tnxx_ll_ppp.c files
Replace manually the initialization and de-initialization functions ¶
LL_DMA2D_Init() API migration ¶
|
HAL1 / HAL2 |
|
|---|---|
|
DMA2D memory-to-memory transfer |
/* DMA2D init configuration */
LL_DMA2D_SetMode(DMA2D, LL_DMA2D_MODE_M2M);
LL_DMA2D_SetOutputColorMode(DMA2D, LL_DMA2D_OUTPUT_MODE_ARGB8888);
LL_DMA2D_SetLineOffset(DMA2D, 0);
LL_DMA2D_SetLineOffsetMode(DMA2D, LL_DMA2D_LINE_OFFSET_PIXELS);
LL_DMA2D_SetOutputSwapMode(DMA2D, LL_DMA2D_SWAP_MODE_REGULAR);
LL_DMA2D_FGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_FGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_FGND_SetAlpha(DMA2D, 0);
LL_DMA2D_FGND_SetLineOffset(DMA2D, 0);
LL_DMA2D_FGND_SetRBSwapMode(DMA2D, LL_DMA2D_RB_MODE_REGULAR);
LL_DMA2D_FGND_SetAlphaInvMode(DMA2D, LL_DMA2D_ALPHA_REGULAR);
|
|
DMA2D memory-to-memory transfer with pixel format conversion |
/* DMA2D init configuration */
LL_DMA2D_SetMode(DMA2D, LL_DMA2D_MODE_M2M_PFC);
LL_DMA2D_SetOutputColorMode(DMA2D, LL_DMA2D_OUTPUT_MODE_ARGB8888);
LL_DMA2D_SetLineOffset(DMA2D, 0);
LL_DMA2D_SetLineOffsetMode(DMA2D, LL_DMA2D_LINE_OFFSET_PIXELS);
LL_DMA2D_SetOutputSwapMode(DMA2D, LL_DMA2D_SWAP_MODE_REGULAR);
LL_DMA2D_FGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_FGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_FGND_SetAlpha(DMA2D, 0);
LL_DMA2D_FGND_SetLineOffset(DMA2D, 0);
LL_DMA2D_FGND_SetRBSwapMode(DMA2D, LL_DMA2D_RB_MODE_REGULAR);
LL_DMA2D_FGND_SetAlphaInvMode(DMA2D, LL_DMA2D_ALPHA_REGULAR);
|
|
DMA2D register-to-memory transfer |
/* DMA2D init configuration */
LL_DMA2D_SetMode(DMA2D, LL_DMA2D_MODE_R2M);
LL_DMA2D_SetOutputColorMode(DMA2D, LL_DMA2D_OUTPUT_MODE_ARGB8888);
LL_DMA2D_SetLineOffset(DMA2D, 0);
LL_DMA2D_SetLineOffsetMode(DMA2D, LL_DMA2D_LINE_OFFSET_PIXELS);
LL_DMA2D_SetOutputSwapMode(DMA2D, LL_DMA2D_SWAP_MODE_REGULAR);
|
|
DMA2D memory-to-memory with blending transfer |
/* DMA2D init configuration */
LL_DMA2D_SetMode(DMA2D, LL_DMA2D_MODE_M2M_BLEND);
LL_DMA2D_SetOutputColorMode(DMA2D, LL_DMA2D_OUTPUT_MODE_ARGB8888);
LL_DMA2D_SetLineOffset(DMA2D, 0);
LL_DMA2D_SetLineOffsetMode(DMA2D, LL_DMA2D_LINE_OFFSET_PIXELS);
LL_DMA2D_SetOutputSwapMode(DMA2D, LL_DMA2D_SWAP_MODE_REGULAR);
LL_DMA2D_FGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_FGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_FGND_SetAlpha(DMA2D, 0);
LL_DMA2D_FGND_SetLineOffset(DMA2D, 0);
LL_DMA2D_FGND_SetRBSwapMode(DMA2D, LL_DMA2D_RB_MODE_REGULAR);
LL_DMA2D_FGND_SetAlphaInvMode(DMA2D, LL_DMA2D_ALPHA_REGULAR);
LL_DMA2D_BGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_BGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_BGND_SetAlpha(DMA2D, 0);
LL_DMA2D_BGND_SetLineOffset(DMA2D, 0);
LL_DMA2D_BGND_SetRBSwapMode(DMA2D, LL_DMA2D_RB_MODE_REGULAR);
LL_DMA2D_BGND_SetAlphaInvMode(DMA2D, LL_DMA2D_ALPHA_REGULAR);
|
|
DMA2D memory-to-memory with blending and fixed color foreground transfer |
/* DMA2D init configuration */
LL_DMA2D_SetMode(DMA2D, LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_FG);
LL_DMA2D_SetOutputColorMode(DMA2D, LL_DMA2D_OUTPUT_MODE_ARGB8888);
LL_DMA2D_SetLineOffset(DMA2D, 0);
LL_DMA2D_SetLineOffsetMode(DMA2D, LL_DMA2D_LINE_OFFSET_PIXELS);
LL_DMA2D_SetOutputSwapMode(DMA2D, LL_DMA2D_SWAP_MODE_REGULAR);
LL_DMA2D_FGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_FGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_FGND_SetAlpha(DMA2D, 0);
LL_DMA2D_FGND_SetLineOffset(DMA2D, 0);
LL_DMA2D_FGND_SetRBSwapMode(DMA2D, LL_DMA2D_RB_MODE_REGULAR);
LL_DMA2D_FGND_SetAlphaInvMode(DMA2D, LL_DMA2D_ALPHA_REGULAR);
LL_DMA2D_BGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_BGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_BGND_SetAlpha(DMA2D, 0);
LL_DMA2D_BGND_SetLineOffset(DMA2D, 0);
|
|
DMA2D memory-to-memory with blending and fixed color background transfer |
/* DMA2D init configuration */
LL_DMA2D_SetMode(DMA2D, LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_BG);
LL_DMA2D_SetOutputColorMode(DMA2D, LL_DMA2D_OUTPUT_MODE_ARGB8888);
LL_DMA2D_SetLineOffset(DMA2D, 0);
LL_DMA2D_SetLineOffsetMode(DMA2D, LL_DMA2D_LINE_OFFSET_PIXELS);
LL_DMA2D_SetOutputSwapMode(DMA2D, LL_DMA2D_SWAP_MODE_REGULAR);
LL_DMA2D_FGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_FGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_FGND_SetAlpha(DMA2D, 0);
LL_DMA2D_FGND_SetLineOffset(DMA2D, 0);
LL_DMA2D_FGND_SetRBSwapMode(DMA2D, LL_DMA2D_RB_MODE_REGULAR);
LL_DMA2D_FGND_SetAlphaInvMode(DMA2D, LL_DMA2D_ALPHA_REGULAR);
LL_DMA2D_BGND_SetColorMode(DMA2D, LL_DMA2D_INPUT_MODE_ARGB8888);
LL_DMA2D_BGND_SetAlphaMode(DMA2D, LL_DMA2D_ALPHA_MODE_NO_MODIF);
LL_DMA2D_BGND_SetAlpha(DMA2D, 0);
LL_DMA2D_BGND_SetLineOffset(DMA2D, 0);
|
LL_DMA2D_DeInit() API migration ¶
Note
For other DMA2D instances and/or series, modify the
LL_AHBx_GRPx
and
LL_AHBx_GRPx
defines as needed according to the target series.
|
HAL1 |
HAL2 |
|
|---|---|---|
|
Case of DMA2D |
LL_DMA2D_DeInit(&DMA2D);
|
LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_DMA2D);
LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_DMA2D);
|